/**
 * 引用android日志系统
 * @authority Ge Liang
 */

#ifndef __COMMON_H__
#define __COMMON_H__
#include <stdio.h>
//#include <unistd.h>
#include <pthread.h>
#include <string.h>
#ifdef __cplusplus 
using namespace std;
#endif
#define LOG_TAG "MatchVS"
#define LOGABLE
//#define ISTEST true//如过定义了这个宏 会在callback执行相应的测试程序


#ifdef LOGABLE
	#ifdef ANDROID
	#include <android/log.h>
		#define LOGI(message, ...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "%s: " message, __FUNCTION__, ##__VA_ARGS__)
		#define LOGW(message, ...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, "%s: " message, __FUNCTION__, ##__VA_ARGS__)
		#define LOGE(message, ...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, "%s: " message, __FUNCTION__, ##__VA_ARGS__)
		#define LOGF(message, ...) __android_log_print(ANDROID_LOG_FATAL, LOG_TAG, "%s: " message, __FUNCTION__, ##__VA_ARGS__)
	#else
		#define LOGI(message, ...) printf("\n(%04X)%s[%04d]%-16s: " message, (unsigned int)pthread_self(),__FILE__,__LINE__,__FUNCTION__ ,##__VA_ARGS__);fflush(stdout)
		#define LOGW(message, ...) printf("\n(%04X)%s[%04d]%-16s:: " message, (unsigned int)pthread_self(),__FILE__,__LINE__,__FUNCTION__ ,##__VA_ARGS__);fflush(stdout)
		#define LOGE(message, ...) printf("\n(%04X)%s[%04d]%-16s::: " message, (unsigned int)pthread_self(),__FILE__,__LINE__,__FUNCTION__ ,##__VA_ARGS__);fflush(stdout)
		#define LOGF(message, ...) printf("\n(%04X)%s[%04d]%-16s:::: " message, (unsigned int)pthread_self(),__FILE__,__LINE__,__FUNCTION__ ,##__VA_ARGS__);fflush(stdout)
	#endif
#else
	#define LOGI(message, ...) NULL
	#define LOGW(message, ...) NULL
	#define LOGE(message, ...) NULL
	#define LOGF(message, ...) NULL
#endif

/**
 * 是否是小端(主机)序
 */
void configEdian();
#endif
